Java Blog

Since I'm very lazy in sharing my thoughts, this blog may contain very few posts - so please be patient! :-)

Montag, Juli 21, 2008

Maven 2 "POM Inheritance" - Revisited

Ich habe die Lösung! Ein Kollege hat mich auf die Idee gebracht, doch nicht den How-Tos der ganzen Maven2-Büchern zu folgen :o) - also <version> und <groupId> aus dem Parent-POM in den Kind-POMs wieder zu verwenden.

Statt dessen trenne ich beide Versionierungen und definiere die Version des Parent-POM als konstant (z. B. "1") und hinterlege dort die eigentlichen Project-Artifact-Properties:

<project>
...
<groupId>test.group</groupId>
<artifactId>parent</artifactId>
<version>1</version>

<properties>
<project.artifact.groupId>test.group</project.artifact.groupId>
<project.artifact.version>1.0.0.2</project.artifact.version>
</properties>
...
</project>

In meinen Kind-POMs referenziere ich dann das Parent-POM mit dem <parent>-Tag und re-definiere aber <groupId> und <version> mit den im Parent-POM definierten Properties:

<project>
...
<parent>
<groupId>test.group</groupId>
<artifactId>parent</artifactId>
<version>1</version>
</parent>

<groupId>${project.artifact.groupId}</groupId>
<artifactId>child1</artifactId>
<version>${project.artifact.version}</version>
...
</project>

Dadurch habe ich zwar unterschiedliche Versionen des Parent-POM und des eigentlichen Projekts - muss aber trotzdem die Versionsnummer für ein neues Release meines Projekts nur an einer Stelle ändern - die Properties im Parent-POM.

Genau so, wie ich es haben wollte! Nur ein wenig anders... :o)

Labels: ,

1 Comments:

  • At 6:29 AM, Anonymous Anonym said…

    Sauber, gut gelöst, muss ja nicht immer so sein "wie es in den Büchern steht"! :-)

     

Kommentar veröffentlichen

<< Home